import UrlAuthTypeEnum from "@/enumeration/UrlAuthTypeEnum";

export interface Url {
  /**
   * ID
   */
  id: string;

  /**
   * 创建时间
   */
  created_at: number;

  /**
   * 更新时间
   */
  updated_at: number;

  /**
   * 链接名称
   */
  name: string;

  /**
   * 链接值
   */
  value: string;

  /**
   * 排序
   */
  sequence: number;
  /**
   * 是否需要认证
   */
  is_auth: boolean;

  /**
   * 认证类型那个，默认Basic认证
   */
  auth_type: UrlAuthTypeEnum;

  /**
   * 用户名
   */
  auth_user: string;

  /**
   * 密码
   */
  auth_password: string;

  /**
   * 版本信息
   */
  version: string;
}

export function getDefaultUrl(source?: Partial<Url>): Url {
  return Object.assign<Url, Partial<Url>>(
    {
      id: "",
      version: "",
      created_at: Date.now(),
      updated_at: Date.now(),
      name: "",
      value: "http://",
      sequence: 0,
      is_auth: false,
      auth_type: UrlAuthTypeEnum.BASIC as UrlAuthTypeEnum,
      auth_user: "",
      auth_password: ""
    },
    source || {}
  );
}
